package com.example.number1.ui.theme;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.number1.R;
import com.example.number1.ui.theme.util.ChatAdapter;
import com.example.number1.ui.theme.util.DividerItemDecoration;
import com.example.number1.ui.theme.util.Message;
import com.example.number1.ui.theme.util.MessageAdapter;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 发送消息功能
 */
public class informationActivity extends AppCompatActivity {

 //   @Override
 /*   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_information);
    }
*/



    private RecyclerView recyclerView;
    private EditText messageEditText;
    private Button sendButton;
    private MessageAdapter messageAdapter;

    private int showdate=2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_information);

        //自定义相对布局
        recyclerView = findViewById(R.id.recycler_view);
        //文本输入框
        messageEditText = findViewById(R.id.message_edit_text);
        //发送按钮
        sendButton = findViewById(R.id.send_button);

        /**
         * LinearLayoutManager是RecyclerView的布局管理器之一，用于在RecyclerView中显示线性列表。
         * 要使用LinearLayoutManager，您可以按照以下步骤进行操作：
         * 在您的活动或碎片中获取对RecyclerView的引用。
         * 创建一个LinearLayoutManager对象，并将其分配给RecyclerView。
         */
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);

        // 创建并设置消息适配器,用于将消息显示在 RecyclerView 中
        messageAdapter = new MessageAdapter();
        recyclerView.setAdapter(messageAdapter);


        //触发发送事件
        sendButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取消息
                String message = messageEditText.getText().toString().trim();
                //判断消息是否存在
                if (!message.isEmpty()) {

                    String time = getTime();
                    //这里就是说存在
                    displayMessage("我", message,time,showdate);
                    messageEditText.setText("");
                }
            }

        });

    }

    /**
     *
     * @param sender 昵称
     * @param message 消息内容
     */
    private void displayMessage(String sender, String message,String time,int showdate) {
        // 创建消息对象，并存储昵称和消息内容
        Message newMessage = new Message(sender, message,time,showdate);
        // 添加消息到适配器中
        messageAdapter.addMessage(newMessage);
        // 滚动RecyclerView至最后一条消息
        recyclerView.scrollToPosition(messageAdapter.getItemCount() - 1);
    }

    long beforeTime=0;

    private String getTime()
    {
        // 获取当前时间的毫秒数
        long currentTimeMillis = System.currentTimeMillis();

        // 创建 Date 对象，并将当前时间的毫秒数传入构造函数
        Date currentDate = new Date(currentTimeMillis);

        // 创建 SimpleDateFormat 对象，指定日期时间的格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

        // 使用 SimpleDateFormat 格式化日期时间，并转换为字符串
        String formattedDate = dateFormat.format(currentDate);

        Log.i("info", String.valueOf(currentTimeMillis));

        // 设定为五秒，毫秒数相差5000
        if((currentTimeMillis-beforeTime)>=5000)
        {
            Log.d("xxxxx",String.valueOf(beforeTime)+" "+String.valueOf(currentTimeMillis));
            beforeTime=currentTimeMillis;
            showdate = 1;
            return formattedDate;
        }else
        {
            beforeTime=currentTimeMillis;
            return "";
        }

    }


}